home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / linux / smb.h < prev    next >
C/C++ Source or Header  |  2005-10-13  |  2KB  |  118 lines

  1. /*
  2.  *  smb.h
  3.  *
  4.  *  Copyright (C) 1995, 1996 by Paal-Kr. Engstad and Volker Lendecke
  5.  *  Copyright (C) 1997 by Volker Lendecke
  6.  *
  7.  */
  8.  
  9. #ifndef _LINUX_SMB_H
  10. #define _LINUX_SMB_H
  11.  
  12. #include <linux/types.h>
  13.  
  14. enum smb_protocol { 
  15.     SMB_PROTOCOL_NONE, 
  16.     SMB_PROTOCOL_CORE, 
  17.     SMB_PROTOCOL_COREPLUS, 
  18.     SMB_PROTOCOL_LANMAN1, 
  19.     SMB_PROTOCOL_LANMAN2, 
  20.     SMB_PROTOCOL_NT1 
  21. };
  22.  
  23. enum smb_case_hndl {
  24.     SMB_CASE_DEFAULT,
  25.     SMB_CASE_LOWER,
  26.     SMB_CASE_UPPER
  27. };
  28.  
  29. struct smb_dskattr {
  30.         __u16 total;
  31.         __u16 allocblocks;
  32.         __u16 blocksize;
  33.         __u16 free;
  34. };
  35.  
  36. struct smb_conn_opt {
  37.  
  38.         /* The socket */
  39.     unsigned int fd;
  40.  
  41.     enum smb_protocol protocol;
  42.     enum smb_case_hndl case_handling;
  43.  
  44.     /* Connection-Options */
  45.  
  46.     __u32              max_xmit;
  47.     __u16              server_uid;
  48.     __u16              tid;
  49.  
  50.         /* The following are LANMAN 1.0 options */
  51.         __u16              secmode;
  52.         __u16              maxmux;
  53.         __u16              maxvcs;
  54.         __u16              rawmode;
  55.         __u32              sesskey;
  56.  
  57.     /* The following are NT LM 0.12 options */
  58.     __u32              maxraw;
  59.     __u32              capabilities;
  60.     __s16              serverzone;
  61. };
  62.  
  63. #ifdef __KERNEL__
  64.  
  65. #define SMB_NLS_MAXNAMELEN 20
  66. struct smb_nls_codepage {
  67.     char local_name[SMB_NLS_MAXNAMELEN];
  68.     char remote_name[SMB_NLS_MAXNAMELEN];
  69. };
  70.  
  71.  
  72. #define SMB_MAXNAMELEN 255
  73. #define SMB_MAXPATHLEN 1024
  74.  
  75. /*
  76.  * Contains all relevant data on a SMB networked file.
  77.  */
  78. struct smb_fattr {
  79.     __u16 attr;
  80.  
  81.     unsigned long    f_ino;
  82.     umode_t        f_mode;
  83.     nlink_t        f_nlink;
  84.     uid_t        f_uid;
  85.     gid_t        f_gid;
  86.     dev_t        f_rdev;
  87.     loff_t        f_size;
  88.     struct timespec    f_atime;
  89.     struct timespec f_mtime;
  90.     struct timespec f_ctime;
  91.     unsigned long    f_blksize;
  92.     unsigned long    f_blocks;
  93.     int        f_unix;
  94. };
  95.  
  96. enum smb_conn_state {
  97.     CONN_VALID,        /* everything's fine */
  98.     CONN_INVALID,        /* Something went wrong, but did not
  99.                    try to reconnect yet. */
  100.     CONN_RETRIED,        /* Tried a reconnection, but was refused */
  101.     CONN_RETRYING        /* Currently trying to reconnect */
  102. };
  103.  
  104. #define SMB_SUPER_MAGIC               0x517B
  105.  
  106. #define SMB_HEADER_LEN   37     /* includes everything up to, but not
  107.                                  * including smb_bcc */
  108.  
  109. #define SMB_INITIAL_PACKET_SIZE        4000
  110. #define SMB_MAX_PACKET_SIZE        32768
  111.  
  112. /* reserve this much space for trans2 parameters. Shouldn't have to be more
  113.    than 10 or so, but OS/2 seems happier like this. */
  114. #define SMB_TRANS2_MAX_PARAM 64
  115.  
  116. #endif
  117. #endif
  118.